Bifurcate space switch

ABSTRACT

A space switch includes a buffer having a plurality of serial inputs, a plurality of de-serializers, each coupled to a respective input, a plurality n of buffers and a media access controller having inputs coupled to the plurality of de-serializers, data outputs coupled to the buffers, and two control outputs coupled to respective buffers for buffering input data at a clock rate one-nth that of the input data and a switch fabric connected to the buffers for matching buffer data throughput with switch data throughput. Preferably the buffer is a bifurcate buffer. This space switch described ensures matching of buffer and switch fabric throughput.

RELATED APPLICATIONS

This application claims the benefit of copending U.S. Provisional Patent Application No. 60/870,866, filed on Dec. 20, 2006 by the same inventor, which is incorporated herein by reference in its entirety.

FIELD OF THE INVENTION

The present invention relates to bifurcate space switches and is particularly concerned with those having very high speed buffers.

BACKGROUND OF THE INVENTION

Peripheral Component Interconnect Express, PCIe 2.0 specifies 5.0 Gigbit/s symbol rate per lane. Multiple lanes can be used to fabricate larger port bandwidths. For example, x4 port would have an aggregate symbol rate of 20 G, and a bit rate of 16 G, 810b coding is used. A x8 port would have an aggregate symbol rate of 40 G, and a bit rate of 32 G. There are other serial interconnect protocols, for example serial rapid IO that have similar properties. This disclosure will focus on PICe, but is not limited to that protocol.

In certain serial protocols (PCIe, SRIO, for example), a port can bifurcate. What this means is that a x8 port may split into two x4 port. An example of a typical implementation of how this is achieved is shown in FIG. 1. The x4 port 10 includes a x4 media access controller (MAC) 12, a first x64 RAM 14, a x1 MAC 16 and a second x64 RAM 18 coupled to an internal switch fabric (ISF) 20. This example is SRIO where the x4 port can bifurcate into 2x1. The port 10 shown in FIG. 1 is configured to run as 1x4. Note that the ISF (Internal Switch Fabric) has more ports than are shown.

Referring to FIG. 2, the bifurcate port of FIG. 1 is shown configured for 2x1 operation. The architecture of FIGS. 1 and 2 is simple conceptually, and is the typical way of attaching bifurcated ports to an ISF. But it wastes buffers in the 1x4 mode, and doubles the ISF bandwidth. The port speed is 10 G in the 1x4 mode, and the ISF port bandwidth consumed is 20 G. Both of these items add area and thus cost to the implementation.

SUMMARY OF THE INVENTION

An object of the present invention is to provide an improved bifurcate buffer.

In accordance with an aspect of the present invention there is provided a bifurcate space switch comprising a space switch comprising a plurality n of buffers; a media access controller having data outputs coupled to the buffers, and a plurality of control outputs coupled to respective buffers for buffering input data at a clock rate one-nth that of the input data; and a switch fabric connected to the plurality of n buffers for matching buffer data throughput with switch data throughput.

In accordance with another aspect of the present invention there is provided a bifurcate space switch comprising a bifurcate space switch comprising a plurality of serial inputs; a plurality of de-serializers, each coupled to a respective input; two buffers; a media access controller having inputs coupled to the plurality of de-serializers, data outputs coupled to the buffers, and two control outputs coupled to respective buffers for buffering input data at a clock rate one-half that of the input data; and a switch fabric connected to the buffers for matching buffer data throughput with switch data throughput.

In accordance with a further aspect of the present invention there is provided a bifurcate space switch comprising a plurality of serial inputs; a plurality of de-serializers, each coupled to a respective input; two buffers; two media access controllers each having inputs coupled to one-half the plurality of de-serializers, data outputs coupled to the buffers, and a control output coupled to respective buffers for buffering input data at a clock rate one-half that of the input data; and a switch fabric connected to the buffers for matching buffer data throughput with switch data throughput.

By matching buffer throughput and switch fabric throughput a more effective use of buffers and fabric bandwidth is made.

BRIEF DESCRIPTION OF THE DRAWINGS

The present invention will be further understood from the following detailed description with reference to the drawings in which:

FIG. 1 illustrates a known bifurcate port configured as a 1x4 port and space switch arrangement;

FIG. 2 illustrates a known arrangement of FIG. 1 configured for 2x1 ports;

FIG. 3 illustrates a bifurcate space switch in accordance with an embodiment of the present invention in a first configuration;

FIG. 4 illustrates a bifurcate space switch in accordance with an embodiment of the present invention in a second configuration;

FIGS. 5 and 6 illustrate switching for the bifurcate space switch of FIG. 3; and

FIGS. 7 and 8 illustrate switching for the bifurcate space switch of FIG. 4.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

Referring to FIG. 3 there is illustrated a bifurcate space switch in accordance with an embodiment of the present invention. The bifurcate space switch 30 includes a bifurcate buffer 40 and an ISF 50. The bifurcate buffer 40, shown configured as a 1x8 port, includes a media access controller (MAC) 42 receiving input from serializer/de-serializer (SERDES) (not shown in FIG. 3) and outputting four 16-bit wide lanes to each of x64 RAM 44 and 46, controlled by lines 48 a and 48 b, respectively. The control line 48 b is coupled to the x64 RAM 46 via a MUX 52, which is used to change configuration of the bifurcate buffer 40.

In operation, the data is written into two-x64 250 MHz dual port RAM 44 and 46. The memory management of the MAC 42 generates different addresses for each bank. In the configuration shown, the 1x8 port 40 is connected to the ISF 50 in such a way as to ensure that the external bandwidth and ISF bandwidth are the same, and that both buffers 44 and 46 are used.

Referring to FIG. 4 there is illustrated a bifurcate space switch of FIG. 3 in a second configuration of the embodiment of the present invention. In the 2x4 configuration, the bifurcate space switch 30 includes a 2x4 bifurcate buffer 40 having a first media access controller (MAC) 42 receiving input from serializer/de-serializer (SERDES) and outputting four 16-bit wide lanes to x64 RAM 44, controlled by line 48 a. The 2x4 bifurcate buffer 40 also includes a second media access controller (MAC) 54 receiving input from the lower four serializer/de-serializer (SERDES) and outputting four 16-bit wide lanes to x64 RAM 46, controlled by line 56. Hence, in this example the 1x8 port 40 bifurcates to 2x4 ports.

In operation, the upper x8 MAC 42 is configured to run in x4 mode. Here each buffer 44 and 46 is managed by its respective MAC 42 and 54. Again note that both buffers are used and the ISF bandwidth equals the port bandwidth.

Herein above, the port connection to the ISF 50 has been described. Now the operation of the ISF 50 is described. The problem now is how ports of different sizes connect to each other, and in such away as to use the full ISF bandwidth. For example a x8 port could talk to a x4 port at ½ the bandwidth but that would waste bandwidth. The requirement is that a x8 port can send to two different x4 ports at the same time, and that two x4 ports can send to a x8 port at the same time. The principle behind this concept is that the ISF connections are time division multiplexed (TDM). There are two phases of the configuration (and thus the data path connectivity). There would be 4 phases to support quad-furcation, not described here.

In general, serial protocols transmit packets of varying length. The packet length is characterized as min, max and in certain quantized steps. In general a minimum size packet may take only one or two clock ticks to transverse the ISF, and maximum sized packets take many. For example, PCIe, can have a payload of 0-2 Kbytes, in DWORD increments, plus header. With a PCIe 5 G x8 port, switching 16 bytes per tick, it would take up to 128 ticks for the payload, and two ticks for the header. Once a packet starts transmitting from ingress to egress port the connection is held until the packet is completed. This significantly simplifies the egress and ingress buffer design, no need for segmentation and reassembly. This is not a requirement but is accepted as the simplest implementation.

Referring to FIG. 5, there is illustrated a data path diagram of a cross bar ISF 50. In this example, a upstream port is configured as a 1x8 port 52 s and the downstream ports are configured as 2x4 ports 54 d and 56 d. The upstream port 52 s connects to destination (ports 1 and 2) 62 an 64 on the ISF 50. Note that typically a packet takes several clock ticks to complete transmission. On the white clock tick source (port 1) 62 is connected to destination (port 6) 84, and on the black clock tick source (port 1) 62 is connected to destination (port 3) 78. Similarly, on the white clock tick source (port 2) 64 is connected to destination (port 3) 78, and on the black clock tick source (port 2) 64 is connected to destination (port 6) 84. Source (port 3) 66, which is a x4 port 54 s, sends to destination (port 1) 62 and destination (port 2) 62, which together comprise a x8 port. Similarly source (port 5) 62 sends to destination (ports 1 and 2) 62 and 62. Also shown is source (port 4) 62 sending to destination (port 5) 62. This connection is the same for both clock phases. The numbers inside the queues designate the destination port.

Referring to FIG. 6, there is illustrated the same switching configuration as FIG. 5, using a different diagram.

FIG. 7 shows another possible switch configuration. This shows a x4 port 54 s sending to a x8 port 56 d and one-half of a x8 port 52 s sending to a x8 port 52 d. This is an important capability; we do not want a x4 port to a x8 port connection, blocking a x8 port to x8 port connection. Here the numbers represent the source port.

Referring to FIG. 8 there is an alternative diagrammatic representation of the switch configuration in FIG. 7.

The preceding, examples describes a x8 5 Gig PICe port that can bifurcate to 2x4 5 Gig PCIe ports. The present embodiment can be adapted to other speeds, port segmentations for example quad-furcation, and protocols, to provide the benefit there from.

Numerous modifications, variations and adaptations may be made to the particular embodiments described above without departing from the scope patent disclosure, which is defined in the claims. 

1. A space switch comprising: a plurality n of buffers; a media access controller having data outputs coupled to the buffers, and a plurality of control outputs coupled to respective buffers for buffering input data at a clock rate one-nth that of the input data; and a switch fabric connected to the plurality of n buffers for matching buffer data throughput with switch data throughput.
 2. A space switch as claimed in claim 1 wherein n is two.
 3. A space switch as claimed in claim 2 wherein the media access controller and buffers are configured as a 1x8 port.
 4. A space switch as claimed in claim 2 wherein the media access controller and buffers are configured as two 2x4 ports.
 5. A bifurcate space switch comprising: a plurality of serial inputs; a plurality of de-serializers, each coupled to a respective input; two buffers; a media access controller having inputs coupled to the plurality of de-serializers, data outputs coupled to the buffers, and two control outputs coupled to respective buffers for buffering input data at a clock rate one-half that of the input data; and a switch fabric connected to the buffers for matching buffer data throughput with switch data throughput.
 6. A space switch as claimed in claim 5 wherein the media access controller and buffers are configured as a 1x8 port.
 7. A bifurcate space switch comprising: a plurality of serial inputs; a plurality of de-serializers, each coupled to a respective input; two buffers; two media access controllers each having inputs coupled to one-half the plurality of de-serializers, data outputs coupled to the buffers, and a control output coupled to respective buffers for buffering input data at a clock rate one-half that of the input data; and a switch fabric connected to the buffers for matching buffer data throughput with switch data throughput.
 8. A bifurcate space switch as claimed in claim 7 wherein the media access controllers and buffers are configured as two 2x4 ports. 